Nonvolatile semiconductor memory and nonvolatile memory system using thereof

ABSTRACT

A nonvolatile semiconductor memory that have a a plurality of bit lines and word lines disposed crossing each other; a memory cell array having a plurality of electrically-programmable memory cells disposed in a region where the bit lines and the word lines are crossing; a trimming circuit which is operated a parameter of initial program voltage every the word line; an initial programming voltage parameter memory section which is stored receiving the parameter of initial program voltage from the trimming circuit; and a controller which is data program for the memory cell array based on the parameter of initial program voltage stored in the initial programming voltage parameter memory section.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority from the prior Japanese Patent Applications No. 2006-015187, filed on Jan. 24, 2006, and Japanese Patent Applications No. 2006-214203, filed on Aug. 7, 2006, the entire contents of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a nonvolatile semiconductor memory and the nonvolatile memory system using thereof.

2. Description of the Related Art

Traditionally, as one of the semiconductor memory device, an electrically-programmable EEPROM (Electrically Erasable Programmable Read Only Memory) is known. Above all, a NAND cell type EEPROM (a NAND type flash memory) configuring blocks (NAND cell blocks) connecting a plurality of memory cells MTr in series has been paid attention to as a memory in which high integration and larger capacity may be expected as compared to the other memories. Data program-and-erase operation of the NAND cell type EEPROM used traditionally are as follows.

The program operation of the NAND type flash memory is mainly performed in order from the memory cell MTr of the farthest from the bit line BL. At first, when data program operation is started, 0V (“0” data program) or power-supply voltage Vcc (“1” data program) is applied to the bit lines corresponding to the program data, and power-supply voltage Vcc is applied to the selected bit line BL side selection gate line. In this case, when the bit line BL is 0V, in the connected selection NAND cell block, the channel region within the NAND cell block is fixed to 0V via the selection gate transistor. When the bit line BL is power-supply voltage Vcc, in the connected selection NAND cell block, the channel region within the NAND cell block is charged to [Vcc−Vtsg] (here, Vtsg is a threshold voltage of the selection gate transistor) via the selection gate transistor; afterwards it becomes a floating state.

Next, the control gate line of the selected memory cell within the selection NAND cell block is set to Vpgm (for instance, about 20V, i.e., high voltage for programming) from 0V, and the control gate line of the non-selected memory cell within the selection NAND cell block is set to Vmg (for instance, about 10V: intermediate voltage) from 0V.

Here, when the bit line is 0V, in the connected NAND cell block, the channel region within the NAND cell block is fixed to 0V, a large potential difference (for instance, about 20V) occurs between the gate (=Vpgm potential) and the channel region (=0V) of the selection memory cell within the selection NAND cell block, and thus electron injection occurs in the floating gate from the channel region. Thus, the threshold of the selection memory cell is shifted to the positive direction. This state is data

On the other hand, when the bit line BL is power-supply voltage Vcc, in the connected selection NAND cell block, because the channel region within the NAND cell block is in a floating state, the voltage step-up (0V→Vpgm, Vmg) of the control gate line affected by the capacity coupling between the control gate line and the channel region within the selection NAND cell block; accompanied by the voltage step-up, the potential of the channel region is rised to Vmch (for instance, about 8V) from [Vcc−Vtsg] potential, keeping in a floating state. When this occurs, the potential difference between the gate (=Vpgm potential) and the channel region (=Vmch potential) of the selected memory cell within the selection NAND cell block the selection NAND cell block is relatively small as about 12V; thus, the electron injection does not occur. Therefore, the threshold of the selection memory cell does not change and is kept at a negative state. This state is data “1.”

A data erase operation of the NAND type flash memory is performed at a time to the entire memory cells MTr within the selected NAND cell block. That is, the entire control gate within the selected NAND cell block is set to be 0V, the bit line BL, the common source line SOURCE, the control gates in the non-selection NAND cell block and the entire selection gates is set to be floating, and high voltage of, for instance, about 20V is applied to the p-type well (or the p-type substrates). Thereby, electrons of the floating gate is released into the p-type well (or the p-type substrate) in the entire memory cells MTr in the selection NAND cell block, and the threshold voltage is shifted to the negative direction. Thus, in the NAND type flash memory, the data erase operation will be performed per block.

The data readout of the NAND type flash memory is performed by setting the control data of the selected memory cell to be 0 V and detecting whether the current is flown or not in the selected memory cell as voltage (for instance, 5V) provided from stress at the time of reading out the control gate and the selection gate of the non-selection memory cell.

However, there have been the following problems in the conventional program method (See Japanese Laid Open Patent 07-169284 and G. J. Hemink et al., Symposium on VLSI Technology Digest of Technical Papers, 1995, pp. 129-130 for reference).

At the time of program, it is preferred to be the shape of program pulse as “an ideal trapezoid-shaped waveform”, but it is difficult to equip with a program pulse occurrence circuit, in which “the ideal trapezoid waveform” is occurred for certain reasons of the program pulse occurrence circuit. Now in the conventional program method, the pulse waveform is set to be a “stair-shaped waveform.” Therefore, there was a problem, in which effect of programming is deteriorated as compared to the ideal trapezoid-shaped waveform.

In addition, it is possible to bring the shape of program pulse close to “the ideal trapezoid-shaped waveform” by lowering interval of the program pulse of the step-shaped waveform; however, there was a problem, in which verification count of the same amount increases and as a consequence, program time and erase time increases.

SUMMARY OF THE INVENTION

According to one embodiment of the present invention,

-   -   a nonvolatile semiconductor memory comprising:     -   a plurality of bit lines and word lines disposed crossing each         other;     -   a memory cell array having a plurality of         electrically-programmable memory cells disposed in a region         where the bit lines and the word lines are crossing;     -   a trimming circuit which is operated a parameter of initial         program voltage every the word line;     -   an initial programming voltage parameter memory section which is         stored receiving the parameter of initial program voltage from         the trimming circuit; and     -   a controller which is data program for the memory cell array         based on the parameter of initial program voltage stored in the         initial programming voltage parameter memory section.

In addition, according to one embodiment of the present invention,

-   -   the nonvolatile semiconductor memory comprising:     -   a plurality of bit lines and word lines disposed crossing each         other;     -   a memory cell array having a plurality of         electrically-programmable memory cells disposed in a region         where the bit lines and the word lines is crossed;     -   a trimming circuit as well as the same number of that of the         word line, which is operated a parameter of initial program         voltage every the word line;     -   an initial programming voltage parameter memory section which is         stored receiving the parameter of the initial program voltage         from the plurality of the trimming circuits; and     -   a controller which is data program for the memory cell array         based on a parameter of the initial program voltage stored in         the initial programming voltage parameter memory section.

BREIF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing one example of configuration of the nonvolatile memory system according to Embodiment 1 of the nonvolatile semiconductor memory of the present invention.

FIG. 2 is a block diagram showing one example of the configuration of the NAND type flash memory 1 according to Embodiment 1 of the nonvolatile semiconductor memory of the present invention.

FIG. 3 is a block diagram showing other examples of the configuration of the NAND type flash memory 1 according to Embodiment 1 of the nonvolatile semiconductor memory of the present invention.

FIG. 4 is a circuit diagram showing one example of the configuration of the memory cell array 24 of the NAND type flash memory 1 according to the Embodiment 1 of the nonvolatile semiconductor memory of the present invention.

FIG. 5 is a diagram showing a configuration of the block BLOCKi of the NAND type flash memory 1 according to the Embodiment 1 of the nonvolatile semiconductor memory of the present invention.

FIG. 6 is a cross sectional view along the bit line BL of 1 NAND cell unit of the NAND type flash memory 1 according to the Embodiment 1 of the nonvolatile semiconductor memory of the present invention.

FIG. 7 is a diagram showing a trimming circuit, in which a parameter of initial Vpgm which is adjusted (trimmed) is given every word line WL of the NAND type flash memory 1 according to the Embodiment 1 of the nonvolatile semiconductor memory of the present invention.

FIG. 8 is a flow chart of the adjustment (trimming) of the initial Vprm in the NAND type flash memory according to the Embodiment 1 of the nonvolatile semiconductor memory of the present invention.

FIG. 9 is a diagram showing a trimming circuit, in which a parameter of initial Vpgm which is adjusted (trimmed) is given every word line WL of the NAND type flash memory 1 according to the Embodiment 2 of the nonvolatile semiconductor memory of the present invention.

FIG. 10 is a flow chart of the adjustment (trimming) of the primary Vpgm in the NAND type flash memory according to the Embodiment 2 of the nonvolatile semiconductor memory of the present invention.

FIG. 11 is a diagram showing a trimming circuit, in which a parameter of voltage shift value (offset value) from initial Vpgm which is adjusted (trimmed) every word line WL of the NAND type flash memory 1 according to Embodiment 3 of the nonvolatile semiconductor memory of the present invention is given.

FIG. 12 is a flow chart of the adjustment (trimming) of the voltage shift value (offset value) from the initial Vpgm in the NAND type flash memory 1 according to the Embodiment 3 of the nonvolatile semiconductor memory of the present invention.

FIG. 13 is a block diagram showing a trimming circuit, in which the parameter of the voltage shift value from the initial Vpgm which is adjusted (trimmed) per even number page and odd number page of the word line WL of the NAND type flash memory 1 according to Embodiment 4 of the nonvolatile semiconductor memory of the present invention is given.

FIG. 14 is a flow chart of the adjustment (trimming) initial Vpgm in the NAND type flash memory.

DETAILED DESCRIPTION OF THE INVENTION

Process Toward the Present Invention

Usually in the NAND type flash memory, threshold after “on data programming must be controlled between about 0V to about 4V. On this account, program verification is performed, only the memory cell MTr with “0” data program shortage is detected, and reprogram data is set so that re-program should be performed only to the memory cell MTr with the “0” data program shortage (per bit verification). The memory cell MTr with the “0” data program shortage is detected by reading out the selected control data is set to, for instance, 0.5V (verification voltage) (verification readout). That is to say, if the threshold of memory cell MTr is not equal to or more than 0.5V having a margin for 0V, electric current is flown in the selected memory cell and thus it is detected as being lack of “0” data program.

Program time is optimized to the individual memory cell MTr by performing data program repeating program operation and program verification; the threshold after the “0” data program is controlled between about 0 V and about 4 V.

In the NAND type flash memory, threshold change of the memory cell MTr is rapid at the initial period of programming, in which electronic amount of an electric charge accumulation layer is relatively few, and the threshold change of the memory cell MTr is slow in at the latter period of programming, in which electronic injection is performed and the electronic amount of the electric charge accumulation layer is relatively much, because the program voltage Vpgm at the time of program is set to be constant. Further, in the initial period of programming, electric field is strong, which is applied to the interlayer insulation film in which the tunnel current is flown; the electric field is weak in the latter period of programming.

On this account, if program voltage Vpgm is raised to increase the program speed, maximum threshold after program becomes high, threshold distribution after program becomes wide, electric field applied to the interlayer insulation film, in which the tunnel current is flown, becomes strong and liability is deteriorated. To the contrary, if Vpgm is lowered to narrow threshold distribution width after program, program speed becomes late; in other words, program voltage margin is narrow. In addition, if program or erase is progressed, the efficiency is deteriorated.

In addition, the NAND type flash memory differs in the program characteristic every word line WL to which the control gate of a plurality of memory cell MTr is connected on the configuration. To be concrete, program characteristics greatly differ from the word line WL adjacent to the selection gate and the word line WL near the center of the block. However, in the NAND type flash memory, parameter of the initial program voltage Vpgm does not have every word line WL, and the parameter, in which the voltage shift value (offset value) from the initial program voltage Vpgm is set, is prepared every word line WL Here in the NAND type flash memory, the parameter which is setting the offset value may not be adjusted (trimmed) automatically in the NAND type flash memory. On this account, in the NAND type flash memory, operation process must be performed using CPU (Central Processing Unit) of external tester and memory to determine offset value every word line WL, and thus test time becomes long.

Here, in the prior application JP2005-277,719A by the present applicant, in a series of program pulse, a program method technology has been developed, in which program speed may be enhanced and thus program time may be shortened, by performing program operation while potential of program pulse (it is also called threshold change pulse) is enhanced gradually by a step-up width ΔVpgm (this program method is hereinafter called “a step-up pulse method”). This step-up pulse method stands for a method, in which at first program is performed applying program pulse of one initial program voltage Vpgm, and then program pulse is applied dividing into several times, with enhancing the initial program voltage Vpgm by constant step-up voltage (ΔVpgm). Hereby the threshold distribution is controlled changing the threshold of the memory cell MTr gradually. In the step-up pulse method, it is required to adjust (trimming) the initial program voltage Vpgm so that the program time (or the program loop times) is completed within the predetermined time (or the count) Here, the adjustment (trimming) of the initial program voltage Vpgm stands for, for instance, adjusting the program time within the target time and adjusting the program loop times within the target count.

In FIG. 14, a flow chart is shown in case of performing the adjustment (trimming) of the initial program voltage Vpgm every word line (WL) in the NAND type flash memory. As shown in the figure, firstly in step 1.1 (S_(1.1)), setting of a parameter of the program loop times to the memory cell (the target) and setting of the address of word line WL to be trimmed.

Next, in Step 1.2 (S_(1.2)), the parameter of initial program voltage Vpgm (Vpgm) is set.

Next, in Step 1.23 (S_(1.3)), data erase of the target is performed.

Subsequently in Step 1.4 (S_(1.4)), data program of the target is performed.

Next in Step 1.5 (S_(1.5)), verification readout is performed. In the verification readout of the Step 1.5 (S_(1.5)), data program is completed if all of the result is pass (Pass); on the other hand, if the result is fail, it shifts to Step 1.6 (S_(1.6)).

In Step 1.6 (S_(1.6)), the initial program voltage Vpgm 0 is enhanced (incremented) to the height of ΔVpgm. This operation is performed automatically with the command input. Afterwards, the step is returned to the Step 1.3 (S_(1.3)) and from the Step 1.3 (S_(1.3)) to the Step 1.5 (S_(1.5)) is repeated until the verification readout of the Step (S_(1.5)) is passed (Pass). At this time, the count (N2) to increment the initial program voltage Vpgm0 (N1) is stored into the cumulative register within the circuit.

Next, in Step 2.1 (S_(2.1)), word line WL is incremented. Here, increment of word line WL stands for changing the trimming word line WL to the word line WL adjacent to the bit line BL side. After this, the same process from the Step 1.2 (S_(1.2)) and to the Step 1.6 (S_(1.6)) is performed from Step 2.2 (S_(2.2)) to Step 2.6 (S_(2.6)). At this time, the count (N2) which increments the initial program voltage Vpgm0 is stored into the cumulative register within the circuit.

In the next place, the same operation from the Step 2.1 (S_(2.1)) and to the step 2.6 (S_(2.6)) is repeated until reaching the same count with the number of word line WL which is wanted to be measured (m in the example).

In the next place, in Step x (S_(x)), the number of increment times of the initial program voltage Vpgm0, which is stored in the cumulative register, is accumulated, and is averaged out (average value=Navg) with the number of word lines WL whose cumulative value is measured (m in the example).

In the next place, in Step x+1 (S_(x+1)), voltage calculated by addition of Vpgm0 to the equation addition value (Navg*ΔVpgm) is set to the parameter as an initial Vpgm of the new chip (initial program voltage Vpgm=Vpgm0 +Navg*ΔVpgm).

Here in the NAND type flash memory, if the parameter of the initial program voltage Vpgm is tried to set every word line WL, an operation process must be performed using external tester such as a CPU and a memory.

Next, embodiments of the nonvolatile semiconductor memory and nonvolatile memory system will be explained; however, the present invention is not limited to the embodiments.

Embodiment 1

FIG. 1 is a block diagram showing one example of the nonvolatile memory system accroding to Embodiment 1 of the present invention. As shown in the figure, the nonvolatile memory system has a NAND type flash memory 1 which is a nonvolatile semiconductor memory, and a flash controller 2 which is a memory controller.

The flash controller 2 controls the NAND type flash memory 1. For instance, the flash controller 2 accesses the NAND type flash memory 1 according to requirement from a system 3 (for instance, an external host), and controls data readout, data program and data erase.

The NAND type flash memory 1 has a control pin and an input/output pin. The control pin is basically a pin for receiving control signals from a flash controller 2. The input/output pin is basically a pin for performing transmission/reception of data with the flash controller 2, for reception of command from the flash controller 2, and the transmission of status to the flash controller 2. In this example, there are /CE (Chip Enable), ALE (Address Latch Enable), CLE (Command Latch Enable), /WE (Write Enable), /RE (Read Enable), RY/BY (Ready/Busy), /WP (Write Protect) as control pins, and there are I/O 1 to I/O 8 as the input/output pins. These control pins and input/output pins are connected to the flash controller 2. In addition, the NAND type flash memory 1 has a ROM fuse 11. The ROM fuse 11 stores parameters on circuit operation of the NAND type flash memory 1 (reference voltage, readout/program/erase voltage intial value, bad block address data, bad column address data, etc.) and such.

In FIG. 2, one example of configuration of the NAND type flash memory 1 is shown. As shown in the figure, the NAND type flash memory 1 has, in addition to the avobe described the control pins, the input/output pins and the ROM fuse 11, a logic control 12, a I/O control circuit 13, a status register 14, an address register 15, a command register 16, a control circuit 17, a high voltage occurrence circuit 18, row decoders (a row address buffer decoder 19A and a row address decoder 19B) 19, a column buffer 20, a column decoder 21, a data register 22, a sense amplifier 23 and a memory cell array 24. The ROM fuse 11 may be formed using memory cells which has the same construction to the memory cells integrated to the memory cell arrays 24. The data stored in the ROM fuse 11 may be rewritten in similar fashion to the data stored in the normal memory cells.

In addition, as shown in FIG. 3, the ROM fuse 11 may be in the region of the memory cell array 24. That is to say, a part of the memory cells of the memory cell array 24 may be used as a memory cell of the ROM fuse 11. Data stored in the ROM fuse 11 is read out to the data register 22 from the memory cells of the ROM fuse 11 at power is turned on and the operation of the NAND type flash memory 1 is optimized.

In FIG. 4, a circuit diagram of one configuration example of the memory cell array 24 shown in FIG. 2 and FIG. 3. As shown in the figure, the memory cell array 24 is divided into the total of m blocks (BLOCK 0, BLOCK 1, BLOCK 2, . . . , BLOCK i, . . . , BLOCK m) Here, “a block” stands for a minimum unit of the data erase.

Also, each of the blocks BLOCK 0 to BLOCKM is configured to k of NAND cell units 0 to k respectively, as the block BLOCK i shown typically in FIG. 5. In Embodiment 1, each of the NAND cell unit is configured, connecting 32 memory cells MTr0 to MTr 31 in series. One ends of the memory cells MTr0 to MTr31 are connected to the bit lines BL (BL_0, BL_1, BL_2, BL_3, . . ., BL-k-1, BL_k) via the selection gate transistor Tr0 connected to the selection gate line SGD. The other ends of the memory cells MTr0 to MTr31 are connected to the common source line SOURCE via the selection gate transistor Tr1 connected to the selection gate line SGS. The control gates of each memory cell MTr are connected to the word lines (WL0 to WL31). The present invention is used especially preferably in the NAND type flash memory with multi value memory, in which each of k memory cells MTr connected to one word line WL memorizes plural bits of data (multi value bit data) corresponding to the amount of electron injection (multi value bit data). Usage is not limited to this but it is also possible to use the NAND type flash memory, in which each memory cell memorizes 1 bit of data. Also, k memory cells Mtr configures a unit called “a page.”

In FIG. 6, a cross section along bit line BL of 1 NAND cell unit is shown. Memory cells MTr are formed in a p type well 26 formed on a n type silicon substrate or a n type well 25. The memory cells Mtr are configured to a stacked structure of floating gates 28 and control gates 29, sharing their source and drain among the adjacent memory cells. The control gates 29 are patterned to the word line WL which is common to the plurality of memory cells MTr in the direction being perpendicular to the surface of the figure. The memory cell array 24 is covered with the interlayer insulation film 30. A common source line (SOURCE) 31 within the blocks embedded in an inside of the interlayer insulation film 30 contacts a source diffusion layer 27 b of the selection gate transistor Tr1 at the common source line (SOURCE) side. The bit line (BL) 32 which is formed on the interlayer insulation film 30 contacts a drain diffusion layer 27 a of the selection gate transistor Tr2 at the bit line BL side. The contact of these common source line (SOURCE) 31 and bit line (BL) 32 are shared in the adjacent memory cells MTr.

Thus, in the NAND type flash memory 1, the memory cells MTr adjacent within the NAND cell unit shares the diffusion layer, and the adjacent NAND cell units shares the wiring contact. However detailed description is omitted, an element region and an element separation region of stripe pattern are alternate arranged in the direction being perpendicular to the surface of FIG. 6. The memory cells MTr are configured in each point of intersection of: each of the element regions; and the word lines WL of the stripe pattern being perpendicular to each of the element regions. From these structural characteristics, the NAND type flash memory 1 is easy to perform high integration and large capacity.

Also in the Embodiment 1, the number of block configuring the memory cell array 24 is set to be m, and it is so set that the 1 block should include k of NAND cell units composed of 32 memory cells MTr. The present invention is not limited to this, but the number of blocks, the number of memory cells MTr and the number of NAND cell units may be changed corresponding to desired capacity. Also in the Embodiment 1, an example is explained, in which the present invention is applied to the NAND type flash memory, in which 1 NAND cell unit is connected to 1 bit line BL. In addition, the present invention may be applied to the NAND type flash memory of so-called shared bit line (Shared Bit Line) type, in which a plurality of NAND cell units shares 1 bit line BL.

Next, adjustment (trimming) of the initial Vpgm in the NAND type flash memory 1 of the embodiment 1 will be explained. Firstly in FIG. 7, a trimming circuit, in which a parameter of the initial Vpgm which is adjusted (trimmed) every word line WL in the NAND type flash memory 1 of the Embodiment 1, is shown. This trimming circuit is configured to a part of the control circuit 17. The trimming circuit is controlled by the control circuit 17. In addition, the trimming circuit may be configured separately with the control circuit 17. As shown in the figure, the trimming circuit includes a Vpgm increment command register 101, a trimming shift register (TSR) 102, an increment count accumulation register (AR) 103, an accumulate value equation shift register (ASR) 104, an adder (ADDR) 105, WL0 to WLm initial Vpgm parameter registers (PRO to PRm) 106, 107, 108, . . . , 10 m and a register data transfer command register 120. The Vpgm increment command register 101 outputs a command which increments program voltage Vpgm. The trimming shift register (TSR) 102 enhances (increments) the program voltage Vpgm. The increment count accumulation register (AR) 103 accumulates the count to incrementing the program voltage Vpgm. The accumulate value equation shift register (ASR) 104 averages a value which is accumulated. The adder (ADDR) 105 adds a value which is averaged to the initial program voltage Vpgm0. In the present embodiment 1, only one trimming circuit is prepared, because holding the trimming circuit every word line WL leads to increase of circuit. In the trimming circuit, a command to transfer data into every word line WL of each initial Vpgm parameter register (PR0 to PRm) 106, 107, 108, . . . , 10 m from trimming shift register (TSR) 102 is prepared. After adjusting (trimming) the initial Vpgm, it is so set that a value to be adjusted (trimmed) be transferred to each of the parameter registers (PP0 to PRm) 106, 107, 108, . . . , 10 m. In each of the initial Vpgm parameter registers (PR0 to PRm) 106, 107, 108, . . . , 10 m, addresses (Address 0 to Address m) are assigned. In the register transfer command register 120, transfer of data to each of the initial Vpgm parameter register (PRO to PRm) 106, 107, 108, . . . , 10 m becomes possible by issuing the data transfer command, in which each of the addresses is set. To hold the parameter of the initial Vpgm every word line WL, the parameter is increased (increase of the circuit). However, there is no increase and decrease because the voltage shift value (offset value) from the initial Vpgm every word line WL is not required as well. In addition, the parameter of the initial Vpgm which is adjusted (trimmed) every word line is not necessarily required to set for the whole word lines. For instance, it is possible to minimize the increase of the circuit by setting only the most appropriate number of parameters, such as 3 parameters, i.e., a parameter for word line WL adjacent to the selection gate Tr1 at the common source (SOURCE) side; a parameter for word line WL adjacent to the selection gate Tr0 at the bit line (BL) side; and a parameter for the other word line WL, and such.

Next, in FIG. 8, a flow chart according to the adjustment (trimming) of the initial program voltage Vpgm performed in the NAND type flash memory 2 according to the Embodiment 1 is shown. As shown in the figure, at first in Step 1.1 (S_(1.1)), the trimming circuit performs a normal search of block (Good Block Seach). In Good Block Search, to be concrete, after erasing the block, program is performed into the entire word lines WL in the block. Additionally, block to pass (Pass) is searched performing the verification operation. In addition, as for Good Block Search, a patent application by the present applicant (JP2002-117.699A) discloses the detailed description for reference. In addition, the trimming circuit is possible not to perform Good Block Search by setting a function to do away with the block not passing (Pass) the verification operation. If doing so, it is not necessary to perform Good Block Search every time the block is incremented; and therefore it becomes possible to shorten the testing time.

Next in Step 1.2 (S_(1.2)), setting of the parameter of the number of program loop times for the memory cell (target) of the initial normal block and setting of address of the trimming word line WL are performed using an external input device. In addition, the number of program loop times may be arbitrarily set. The setting value of the parameter of the number of program loop times and the setting value of address of the trimming word line WL are memorized into the ROM fuse 11 (FIG. 2 and FIG. 3) by an external input device via the above-described control pin, the above-described input-output pin and the I/O control circuit 13.

In the next place, in Step 1.3 (S_(1.3)), the parameter of initial program voltage (Vpgm 0) to the trimming shift register (TSR) 102 using an external input device is set. The Vpgm0 may be arbitrarily set, for instance, it may be set to be 14 V. The parameter of the initial program voltage (Vpgm 0) is memorized into the ROM fuse 11 (FIG. 2 and FIG. 3) by the external input device via the above-described control pin, the above-described output pin and the I/O control circuit 13.

Next in the Step 1.4 (S_(1.4)), the trimming circuit performs data erase of the target based on data memorized in the ROM fuse 11 and the data register 22.

Next in the Step 1.5 (S_(1.5)), the trimming circuit performs data program to the target based on data memorized in the ROM fuse 11 and the data register 22.

Next in Step 1.6 (S_(1.6)), the trimming circuit performs verification readout based on data memorized in the ROM fuse 11 and the data register 22. In the verification readout of the Step 1.6 (S_(1.6)), if the entire result is pass (Pass), data program is completed; on the other hand if fail (Fail), the step is shifted to the step 1.7 (S_(1.7)).

In Step 1.7 (S_(1.7)), the trimming shift register (TSR) 102 performs the Vpgm 0 is set to enhance (increment) as well as ΔVpgm based on data memorized in the ROM fuse 11 and the data register 22. This operation is possible to perform automatically by command input from the Vpgm increment command register 101. Afterwards, in the trimming circuit, the step is returned to the Step 1.4 (S_(1.4)), and the process from the Step 1.4 (S_(1.4)) to the Step 1.7 (S_(1.7)) is performed repeatedly until the verification readout is all passed (Pass) of the Step 1.6 (S_(1.6)). In this case, the number of time (N1), in which the Vpgm 0 is incremented, is stored into the increment count accumulation register (AR) 103 in the trimming circuit. In addition, the ΔVpgm may be arbitrarily set, for instance, it may be between 0.2 V to 1.0 V. The ΔVpgm is given to and memorized in the ROM fuse 11 (FIG. 2 and FIG. 3) by the external input device via the above-described control pin, the above-described output pin and the I/O control circuit 13.

Next in the Step 2.1 (S_(2.1)), the trimming circuit again performs Good Block Search and increments the block to a normal block. Afterwards, in the trimming circuit, a process from Step 2.2 (S_(2.2)) to Step 2.6 (S_(2.6)) is performed as well as the process from the Step 1.3 (S_(1.3)) to the Step 1.7 (S_(1.7)). In this case, the count (N2), in which Vpgm 0 is incremented, is stored into the increment count accumulation register (AR) 103 in the trimming circuit.

Next, the trimming circuit repeats the same process from the Step 2.1 (S_(2.1)) to the Step 2.6 (S_(2.6)) until reaching the same count to the number of blocks desired to be measured (k blocks in the example).

Next in the Step x (S_(x)), the trimming circuit accumulates the number of increment times of the Vpgm stored in the increment count accumulation register (AR). The accumulate value equation shift register (ASR) 104 averages out (average value=Navg) with the number of blocks whose accumulate value is measured (k blocks in the example).

Next in Step x+1 (S_(x+1)), the adder (ADDR) 105 adds average addition value (Navg*ΔVpgm) to the initial program voltage Vpgm 0, and the added result is set to the trimming shift register (TSR) 102 as an initial Vpgm parameter of the novel chip (initial Vpgm=Vpgm0+Navg*Δvpgm).

Next in Step x+2 (S_(x+2)), the register data transfer command register 120 transfers data of initial Vpgm parameter of the new chip which is set in the trimming shift register (TSR) 102 to the initial Vpgm parameter register corresponding to the trimming word line WL. The operation is possible to perform only by inputting the address corresponding to the initial Vpgm parameter register and the transfer command into the trimming shift register (TSR) 102.

Next in the Step x+3 (S_(x+3)) the trimming cicuit increments the word line WL. Here, increment of the word line WL stands for changing the trimming word line WL to the word line WL adjacent to the bit line BL side. Afterwards, the trimming circuit repeats the same process from the Step 1.1 (S_(1.1)) to the Step x+3 (S_(x+3)) until reaching the same count to the number (for instance, m) of the word lines WL desired to be measured.

The WL0 to WLm initial Vpgm parameters, which is set to the WL0 to WLm initial Vpgm parameter registers (PR0 to PRm) 106, 107, 108, . . . , 10 m are memorized in the ROM fuse 11 (FIG. 2 and FIG. 3) by the control circuit 17 (FIG. 2 and FIG. 3). Here, the Rom fuse 11 has a predetermined region, where WL0 to WLm initial program voltage Vpgm parameters are memorized. Then the control circuit 17 (FIG. 2 and FIG. 3) controls operations of each part of the NAND type flash memory device 1 and performs data program and data readout for the memory cell array 24 based on the initial Vpgm parameter memorized in the ROM fuse 11 and the data memorized in the data register 22.

In addition, the word lines WL0 to WLm initial Vpgm parameters, which is set to the WL0 to WLm initial Vpgm parameter register (PR0 to PRm) 106, 107, 108, . . . , 10 m, may be configured to be memorized in the parameter memory section other than the ROM fuse 11 by the control circuit 17 (FIG. 2 and FIG. 3). In this case, the control circuit 17 (FIG. 2 and FIG. 3) controls operations of each part of the NAND type flash memory device 1 and performs data program and data readout for the memory cell array 24 based on data of the initial Vpgm parameter and the data register 22 memorized in the parameter memory section.

By doing so, in the NAND type flash memory of the Embodiment 1, it is possible to prepare the parameter every word line WL. Thus, it is not necessary to perform arithmetic processing using a CPU or a memory which are external testers, and it can be shorten the test time.

Embodiment 2

Next, Embodiment 2 of the present invention will be described in detail referring to the accompanying figures.

The Embodiment 2 has the same description to the nonvolatile semiconductor memory and the nonvolatile memory system of the above-described Embodiment 1 except that a sequence of adjustment (trimming) of the trimming circuit and the initial program voltage Vpgm, in which the parameter of the initial program voltage Vpgm which is adjusted (trimmed) every word line WL, is different in part Therefore, the configuration will not be explained again here.

In the above-described Embodiment 1, a method has been applied, where only one trimming circuit is prepared, in which parameter of the initial program voltage Vpgm adjusted (trimmed) every word line WL to prevent increase of the trimming circuit, and the adjustment result is transferred to the initial Vpgm parameter register (PRO to PRm) corresponding to each of the word lines WL. In the Embodiment 2, the above-described trimming circuit is set to be had every word line WL. This leads that a plurality of voltages can be adjusted (trimmed) in 1 time of test flow and thus the test time can be further shortened.

FIG. 9 is a block diagram showing a trimming circuit, in which parameter of the initial program voltage Vpgm which is adjusted (trimmed) every word line WL of the NAND type flash memory 1 according to the Embodiment 2. This trimming circuit may be configured to a part of the control circuit 17. In addition, this trimming circuit may be configured separately with the control circuit 17. As shown in the figure, the trimming circuit includes the Vpgm increment command register 101 and each of word line WL trimming circuits (WL0 to WLm circuit) 201, 202, . . . , 20 m. Each of the word lines trimming circuit (WL0 to WLm circuit) 201, 202, . . . , 20 m includes the trimming shirt register (TSR0 to TSRm) 102, increment count accumulation register (AR0 to ARm) 103, an accumulate value equation shift register (ASR0 to ASRm) 104 and the adder (ADDR0 to ADDRm) 105, respectively. In addition, in the Embodiment 2, the trimming shift register (TSR0 to TSRm) 102 also has a role of parameter register of the initial program voltage Vpgm. As well, the WL0 to WLm trimming shift register (TSR0 to TSRm) 102 may be separated to the WO0 to WLm initial program voltage Vpgm parameter registers (PR0 to PRm). Roles of the trimming shift registers (TSR0 to TSRm) 102, the increment count accumulation registers (AR0 to ARm) 103, the accumulate value equation shift registers ASR0 to ASRm) 104, the adder (ADDR0 to ADDRm) 105 and parameter register 102 of initial program voltage Vpgm according to the Embodiment 2, are the same to those of the above-described Embodiment 1.

FIG. 10 is a flow chart for describing operation of the adjustment (trimming) of the initial program voltage Vpgm in the NAND type flash memory 1 according to the Embodiment 2. Step 1.1 (S_(1.1)) is the same to that of the above-described Embodiment 1 (the flow chart of FIG. 8), so the description will be omitted.

Next in Step 1.2 (S_(1.2)), a parameter of the number of program loop times to the memory cell (target) of the first normal block using an external input device is set. In addition, the number of program loop times may be arbitrarily set. The set value (set value) of the parameter of the number of program loop times is memorized in the ROM fuse 11 (FIG. 2 and FIG. 3) by the external input device via the above-described control pin, the above-described output pin and the I/O control circuit 13.

Next in Step 1.3 (S_(1.3)), the trimming circuit performs the adjustment (trimming) of the initial program voltage Vpgm (Vpgm 0) to the word line WL0 based on data memorized in the ROM fuse 11 and the data register 22. The adjustment (trimming) of the initial program voltage Vpgm0 to the word line WL0 may be performed with the same process to that from the above-described Step 1.3 (S_(1.3)) to the Step 1.7 (S_(1.7)) of Embodiment 1. In this case, the count N1(0), in which the initial program voltage Vpgm0 is incremented to the word line WL0, is stored into the increment count accumulation register (AR) 103 in the trimming circuit.

Next in Step 1.4 (S_(1.4)), the trimming circuit performs the adjustment (trimming) of the initial program voltage Vpgm to the word line WL1 processing same to the Step 1.3 (S_(1.3)), based on data memorized in the ROM fuse 11 and the data register 22. Then, the trimming circuit repeats the same process until reaching the same count to the number of the word line, is desired to measure (m in the example). In this case, the count (N1(1) to N1(m)), in which the initial program voltage Vpgm0 is incremented to each of the word lines, are stored into the increment count accumulation register (AR) 103 in the trimming circuit.

In the next stage, in Step 2.1 (S_(2.1)), the trimming circuit again performs Good Block Search and increments the block until the normal block. Afterwards, the trimming circuit performs a process from Step 2.2 (S_(2.2)) to the Step 2.m+2 (S_(2.m+2)), as well as the process from the Step 1.3 (S_(1.3)) to the Step 1.m+3 (S_(1.m+3)) In this case, the counts (N2(0) to N2(m)), in which the initial program voltage Vpgm0 is incremented to each of the word lines are stored to the increment count accumulation register (AR) 103 in the trimming circuit.

Next, the trimming circuit repeats the same process from the Step 2.1 (S_(2.1)) to the Step 2.6 (S_(2.6)) until reaching the same count to the number of block desired to be measured (k in the example).

Next in Step x (S_(x)), the accumulate value equation shift register (ASR) 104 accumulates the number of increment times of the initial program voltage Vpgm0 stored in the increment count accumulation register (AR) 103. The accumulate value equation shift register (ASR) 104 is averaged out (average value=Navg(0), Navg(1), . . . , Navg(k)) with the number of blocks, by which the accumulate value is measured (k in the example).

In Step x+1 (S_(x+1)), the adder (ADDR0 to ADDRm) 105 generates a result which is calculated by adding an average addition value (NavgxΔVpgm) to the initial program voltage Vpgm0; and the result is also set to the trimming shift register (TSR) 102 as an initial Vpgm parameter of new chip (initial Vpgm(0)=Vpgm0+Navg(0)*ΔVpgm, initial Vpgm(1)=Vpgm0+Navg(1)*ΔVpgm, . . . , initial Vpgm(k)=Vpgm0+Navg(k)*ΔVpgm).

The WL0 to WLm initial Vpgm parameters set in the WL0 to WLm initial Vpgm parameter registers (PR0 to PRm) 102 according to the Embodiment 2 are memorized in the ROM fuse 11 (FIG. 2 and FIG. 3) by the control circuit 17 (FIG. 2 and FIG. 3). Here, the ROM fuse 11 has a predetermined region, where the WL0 to WLm initial Vpgm parameter are memorized. In addition, the control circuit 17 (FIG. 2 and FIG. 3) controls operations of the each section of the NAND type flash memory device 1 and performs data program and data readout for the memory cell array 24 based on the initial Vpgm parameter memorized in the ROM fuse 11 and the data memorized in the data register 22.

In addition, The WL0 to WLm initial Vpgm parameters set in the WL0 to WLm initial Vpgm parameter registers (PR0 to PRm) 102 according to the Embodiment 2 may be configured to memorize in the parameter memory section other than the ROM fuse 11 by the control circuit 17 (FIG. 2 and FIG. 3). In this case, the control circuit 17 (FIG. 2 and FIG. 3) controls operations of the each section of the NAND type flash memory device 1 and performs data program and data readout for the memory cell array 24 based on the initial Vpgm parameter memorized in the parameter memory section and the data memorized in the data register 22.

In addition in the Embodiment 2, the transfer operation to the parameter register such as the above-described Embodiment 1 is not necessary because the transfer operation has the same effect to the above-described Embodiment 1 and the trimming shift register (TSR) 102 is also used as a parameter register of the initial program voltage Vpgm.

Embodiment 3

In the next place, the Emobdiment 3 will be described in detail referring to the accompanying figures.

The Embodiment 3 prepares the parameter setting a voltage shift value (offset value) from the initial program voltage Vpgm every word line WL. The configuration of the Embodiment 3 other than this will not be described again, because the other configurations are the same to the nonvolatile semiconductor memory and the nonvolatile memory system of the above-described Embodiment 1.

FIG. 11 is a block diagram showing the trimming circuit, in which the parameter of the voltage shift value (offset value) which is adjusted (trimmed) to the initial program voltage Vpgm every word line WL of the NAND type flash memory 1 of the Embodiment 3. The trimming circuit is configured to a part of the control circuit 17. The trimming circuit is controlled by the control circuit 17. In addition, the trimming circuit may be configured separately to the control circuit 17. As shown in the figure, this trimming circuit is different only in that the subject parameter is changed to the voltage shift value (offset value), in which the initial program voltage Vpgm is increased or decreased from the initial program voltage vpgm. The others are the same to the trimming circuit (trimming circuit of FIG. 7) according to the above-described Embodiment 1. That is to say, the trimming circuit according to the Embodiment 3 includes a Vpgm increment command register 101, a trimming shift register (TSR) 102, an increment count accumulation register (AR) 103, an accumulate value equation shift register (ASR) 104, an adder (ADDR) 105, a register data transfer command register 120 and WL0 to WLm offset value WL_Vpgm parameter registers (PR0 to PRm) 300, 301, 302, . . . , 30 m.

In FIG. 12, a flow chart to describe an adjustment (trimming), in which the parameter of voltage shift value (offset value) is given to the initial Vpgm in the NAND type flash memory 1 according to the Embodiment 3. Step 1.1 (S_(1.1)) is the same to that of the above-described Embodiment 1 (the flow chart of FIG. 8), so the description will be omitted.

Next in Step 1.2 (S_(1.2)), a parameter of the same number of program loop time to the memory cell (target) of the initial normal block using the external input device. In addition, the number of program loop time can be arbitrarily set. The set value (set value) of the number of program loop time is given to and memorized in the ROM fuse 11 (FIG. 2 and FIG. 3) by the external input device via the above-described control pin, the above-described input and output pin and the I/O control circuit 13.

Next, the trimming circuit performs the adjustment (trimming) of the initial Vpgm (Vpgm0), by which the average in the block was adopted. The operation, for instance, may be conducted with a method shown in the flow chart in the above-described FIG. 14. However, in the method shown in the flow chart of the above-described FIG. 14, it was necessary to perform an operation process using external tester such as a CPU and a memory to prepare the initial program voltage Vpgm0 every word line WL. In the Embodiment 3, the Vpgm0 is not prepared every word line WL but is prepared as an averaged value of the entire word line WL in the block; therefore, it is not necessary to perform an operation process using the external tester such as a CPU and a memory.

The sequence after this is basically the same to the above-described Embodiment 1 (the flow chart shown in FIG. 8). However in the Embodiment 3, a part of the sequence is changed to prepare voltage shift value (offset value) WL_Vpgm from the initial program voltage Vpgm every word line WL. In addition, the offset value WL_Vpgm is a value which has a range of numerical value enabling to a plus shift (plus value) from a minus shift (minus value) and is not specifically limited; for instance, the value is in a range of −8 to +8V. At first in the Step 2.1 (S_(2.1)), the trimming address of the word line WL is set.

Next in Step 2.2 (S_(2.2)), a minimum value WL_Vpgm0 of offset value WL_Vpgm is set to the trimming shift register (TSR). The set value (set value) of this trimming shift register (TSR) 102 is given to and memorized in the ROM fuse 11 (FIG. 2 and FIG. 3) by the external input device via the above-described control pin, the above-described output pin and the I/O control circuit 13.

Next in Step 2.3 (S_(2.3)), the adder (ADDR) 105 adds the initial program voltage Vpgm0 to the minimum value WL_Vpgm0 (Vpgm=Vpgm0+WL_Vpgm0).

From Step 2.4 (S_(2.4)) to Step 2.6 (S_(2.6)) are the same to from the Step 1.4 (S_(1.4)) to the Step 1.6 (S_(1.6)) of the above-described Embodiment 1 (the flow chart of FIG. 8), so the description will be omitted.

In Step 2.7 (S_(2.7)), the trimming shift register (TSR) 102 enhances (increments) the minimum value WL_Vpgm0 as well as ΔVpgm. The operation can be performed automatically by command input. Afterwards, the process is returned to the Step 2.3 (S_(2.3)), and a process from the Step 2.3 (S_(2.3)) to the Step 2.6 (S_(2.6)) is repeated until verification readout of the Step 2.6 (S_(2.6)) is passed (Pass) In this case, the count (N1), in which the minimum value WL_Vpgm0 is incremented, is stored into the increment count accumulation register (AR) 103 in the trimming circuit.

Next in Step 3.1 (S_(3.1)), the trimming circuit again performs Good Block Search and increments the block to a normal block. Then, as well as the process from the Step 2.1 (S_(2.1)) to the Step 2.7 (S_(2.7)), the process from Step 3.2 (S_(3.2)) to Step 3.8 (S_(3.8)) is performed. In this case, the count (N2), by which the WL_Vpgm0 is incremented, is stored into the increment count accumulation register (AR) 103 in the trimming circuit.

Next, the same operation from the Step 3.1 (S_(3.1)) to the Step 3.8 (S_(3.8)) is repeated until reaching the same count to the number of block desired to be measured (k in the example).

Next in Step x (S_(x)), the accumulate value equation shift register (ASR) 104 accumulates the number of increment time of the minimum value WL_Vpgm0 stored in the increment count accumulation register (AR) 103. The accumulate value equation shift register (ASR) 104 is averaged out (average value=Navg) with the number of block, in which the accumulate value is measured (k in the example).

Next in Step x+1 (S_(x+1)), the adder (ADDR) 105 generates a result which is calculated by adding an average addition value (Navg*ΔVpgm) to the WL_Vpgm0 set to a minimum value; and the result is also set to the trimming shift register (TSR) 102 as an offset value parameter of new chip (initial Vpgm(0)=Vpgm0+Navg(0)*ΔVpgm, initial Vpgm(1)=Vpgm0+Navg(1)*ΔVpgm, . . . , initial Vpgm(k)=Vpgm0+Navg(k)*ΔVpgm).

Next in Step x+2 (S_(s+2)), the register data transfer command register 120 transfers data of a new chip into the the WL_Vpgm parameter of registers 300, 301, 302, . . . , 30 m corresponding to the trimmed word line WL. The operation can be performed only in an input of the address corresponding to the WL_Vpgm parameter register and the transfer command.

Next in Step x+3 (S_(x+3)), the trimming circuit increments the word line WL. Here, increment of word line WL stands for changing the word line WL to be trimmed to the word line WL adjacent to the bit line BL side. Afterwards, the trimming circuit repeats the same operation from the Step 1.1 (S_(1.1)) to the Step x+3 (S_(x+3)) until reaching the same number of time to the number of word line WL desired to be measured (for instance, m).

The WL0 to WLm offset values, which is set to the WL0 to WLm offset value WL_Vpgm parameter registers (PR0 to PRm) 300, 301, 302, . . . , 30 m are memorized in the ROM fuse 11 (FIG. 2 and FIG. 3) by the control circuit 17 (FIG. 2 and FIG. 3). Here, the Rom fuse 11 has a predetermined region, where a parameter of the WL0 to WLm offset value WL_Vpgm is memorized. And the control circuit 17 (FIG. 2 and FIG. 3) controls the operations of each part of the NAND type flash memory 1 and performs data program and readout for the memory cell array 24 based on the parameter of the offset value WL_Vpgm memorized in the ROM fuse 11 and the data memorized in the data register 22.

In addition, the WL0 to WLm offset values, which is set to the WL0 to WLm offset value WL_Vpgm parameter register (PR0 to PRm) 300, 301, 302, . . . , 30 m, may be configured to be memorized in the parameter memory section other than the ROM fuse 11. In this case, the control circuit 17 (FIG. 2 and FIG. 3) controls the operations of each section of the NAND type flash memory 1 and performs data program and readout for the memory cell array 24 based on the parameter of the offset value WL_Vpgm memorized in the parameter memory section and the data memorized in the data register 22.

By doing so, in the NAND type flash memory of the Embodiment 3, it is possible to prepare the parameter of the voltage shift value (offset value) from the initial Vpgm every word line WL. Thus, it is not necessary to perform an operation process using external tester such as a CPU and a memory and is possible to shorten the test time

Additionally in the Embodiment 3, a case was described, in which a circuit same to the circuit of the above-described Embodiment 1; however, the same circuit to the above-described Embodiment 2 can be used.

Embodiment 4

Next the Embodiment 4 will be explained in detail referring to the accompanying figure.

The Embodiment 4 prepares the parameter, in which the voltage shift value (offset value) from the initial Vpgm is set, every even numbers of pages and every odd numbers of pages. The configuration other than the Embodiment 4 is the same to the nonvolatile semiconductor memory device and the nonvolatile memory system of the above-mentioned Embodiment 3.

FIG. 13 is a block diagram showing a trimming circuit, in which a parameter of the voltage shift value (offset value) adjusted (trimmed) to the initial Vpgm every even numbers of pages and the odd numbers of pages of the word line WL of the NAND type flash memory 1 according to the Embodiment 4 is given. The trimming circuit is configured to a part of the control circuit 17. The trimming circuit is controlled by the control circuit 17. In addition, the trimming circuit may be configured separately to the control circuit 17.

As shown in the figure, the trimming circuit of the Embodiment 4 is the same to the trimming circuit (the circuit of FIG. 11) according to the above-described Embodiment 3, except that the subject parameter is changed to a parameter of the voltage shift value (offset value) which is adjusted (trimmed) to the initial Vpgm every even numbers of pages and every odd numbers of pages of the word line WL. That is to say, the trimming circuit according to Embodiment 4, includes a Vpgm increment command register 101, a trimming shift register (TSR) 102, an increment count accumulation register (AR) 103, accumulate value equation shift register (ASR) 104, an adder (ADDR) 105, a register data transfer command register 120 and WL0 to WLm even numbers of pages and odd numbers of pages offset value WL_Vpgm parameter registers (PR0 to PRm) 400, 401, . . . , 40 m.

An operation of the trimming circuit of the Embodiment 4 is the same to that of the trimming circuit of the Embodiment 3 except that the parameter of the voltage shift value (offset value) which is adjusted (trimmed) to the initial Vpgm every even numbers of pages and odd numbers of pages of word line WL, instead of preparing parameter of the voltage shift value (offset value), in which the trimming circuit of the Embodiment 3 is adjusted (trimmed) to the initial Vpgm every word line WL.

That is, the trimming circuit of the Embodiment 4 calculates the parameter of the offset value adjusted (trimmed) to the initial Vpgm every even numbers of page and every odd numbers of page of the word line WL as well as the process of the flow chart shown in FIG. 12, and is given to and memorized in the WL0 to WLm even numbers of pages and odd numbers of pages offset value WL_Vpgm parameter registers (PR0 to PRm) 400, 401, . . . , 40 m.

The parameters of the WL0 to WLm even numbers of pages and odd numbers of pages offset values WL_Vpgm, which is set to the offset value WL_Vpgm parameter registers (PR0 to PRm) 400, 401, . . . , 40 m are memorized in the ROM fuse 11 (FIG. 2 and FIG. 3) by the control circuit 17 (FIG. 2 and FIG. 3). Here, the ROM fuse 11 has a predetermined region, where the WL0 to WLm even numbers of pages and odd numbers of pages offset value WL_Vpgm parameter are memorized. Further, the control circuit 17 (FIG. 2 and FIG. 3) controls the operations of each part of the NAND type flash memory 1 and performs data program and readout for the memory cell array 24 based on the parameter of the offset value WL_Vpgm memorized in the ROM fuse 11 and the data memorized in the data register 22.

In addition, the trimming circuit according to the Embodiment 4 of the present invention may configure 2 of the respective word lines WL0 to WLm even numbers of pages and odd numbers of pages offset value WL_Vpgm parameter registers (PR0 to PRm) 400, 401, . . . , 40 m with 1 register which has the same register address, and may also be configured so that the respective word lines WL0 to WLm even numbers of pages and odd numbers of pages offset value should be memorized. In the case the configuration is set as an another embodiment of the present invention, as compared to the case of the Embodiment 4 shown in FIG. 13, halves of register addresses are used and a ROM address of the ROM fuse corresponding to the halves of the register addresses may be used; therefore, the register address and the ROM address may be a half. Also in the case, another embodiments of the present invention can be performed a control corresponding to the above-described operation (addition of the average value, increment of register and such).

In addition, the Embodiment 4 of the present invention may be configured so that the parameters of the WL0 to WLm even numbers of pages and odd numbers of pages offset values WL_Vpgm, which is set to the WL0 to WLm even numbers of pages and odd numbers of pages offset value WL_vpgm parameter registers (PR0 to PRm) 400, 401, 40 m may be configured to be memorized in the parameter memory section other than the ROM fuse 11. In the case, the control circuit 17 (FIG. 2 and FIG. 3) controls the operations of each part of the NAND type flash memory 1 and performs data program and readout for the memory cell array 24 based on the parameter of the offset value WL_vpgm memorized in the parameter memory section and the data memorized in the data register 22.

In the above-described Embodiments 1 to 4, the NAND type flash memory is adopted as an example of the nonvolatile semiconductor memory of the present invention; however, the semiconductor memory may be nonvolatile semiconductor memories such as a NOR type, a DINOR type, an AND cell type EEPR0M and such.

In the nonvolatile semiconductor memory according to the above-described embodiments of the present invention, the above-described trimming circuit may give a parameter of the initial program voltage which is optimized every word line, and may give a parameter, in which is set to the voltage shift value from the initial program adjusted every word line.

The nonvolatile semiconductor memory according to the above-described embodiment of the present invention does not limit the invention specifically; however, it is preferable to be a NAND type flash memory device. However, as described above, the semiconductor memory of the present invention may be nonvolatile semiconductor memories such as the NOR type, the DINOR type, the AND cell type EEPR0M and such.

In addition, according to the present invention, a nonvolatile memory system including a nonvolatile semiconductor memory device and a memory device controller, in which the above-described nonvolatile semiconductor memory is controlled, where the nonvolatile semiconductor memory system is a nonvolatile semiconductor memory of the present invention.

In the nonvolatile semiconductor memory according to the embodiment of the present invention, it is preferred that the above-described memory cell should memorizes a plurality of bit data corresponding to the electron injection. However, the present invention is not limited to this and the above-described memory cell may memorize 1 bit of data. 

1. A nonvolatile semiconductor memory comprising: a plurality of bit lines and word lines disposed crossing each other; a memory cell array having a plurality of electrically-programmable memory cells disposed in a region where the bit lines and the word lines are crossing; a trimming circuit which is operated a parameter of initial program voltage every the word line; an initial programming voltage parameter memory section which is stored receiving the parameter of initial program voltage from the trimming circuit; and a controller which is data program for the memory cell array based on the parameter of initial program voltage stored in the initial programming voltage parameter memory section.
 2. The nonvolatile semiconductor memory in claim 1, wherein: the trimming circuit comprising; an increment command output section which is a increment command which makes the initial program voltage gradually increase every the word line is output based on the parameter memorized in the initial programming voltage parameter memory section; and a trimming parameter setting section which is the trimming parameter which trimming the initial program voltage every the word line, is set corresponding to the increment command which is output from the increment command output section.
 3. The nonvolatile semiconductor memory in claim 2, wherein: the trimming circuit comprising; an increment count accumulation section which is accumulated the increment count of the initial program voltage by an increment command which is output from the increment command output section; an equation section which is averaged the increment count accumulating by the increment count accumulation section; and an adder which is added a value averaged by the equation section to the initial program voltage; and the trimming parameter setting section sets the trimming parameter trimming the initial program voltage every the word line corresponding to the increment command which is output from the increment command output section.
 4. The nonvolatile semiconductor memory in claim 3, wherein: the trimming circuit comprising; a trimming parameter memory section which is stored the trimming parameter every the word line; and a trimming parameter transfer section which is the trimming parameter which is set by the trimming parameter setting section is made transfer in the trimming parameter memory section and made memorize every the word line.
 5. The nonvolatile semiconductor memory in claim 4, wherein: the trimming parameter memory section is comprising every the word line.
 6. The nonvolatile semiconductor memory in claim 5, wherein: the trimming parameter memory section is set to an address of every the word line; and the trimming parameter transfer section transfers and memorizes the trimming parameter which is set to the trimming parameter memory section corresponding to the address.
 7. The nonvolatile semiconductor memory in claim 1, Wherein: the initial programming voltage parameter memory section stored the voltage shift value, in which the initial program voltage is increased and decreased; and the trimming parameter setting section sets the trimming parameter trimming the initial program voltage every the word line based on the voltage shift value memorized in the initial programming voltage parameter memory section.
 8. The nonvolatile semiconductor memory in claim 7, wherein: the initial program voltage is averaged a value, in which is an initial program voltage respectively corresponding to the plurality of word lines; the increment command output section outputs the trimming command trimming the initial program voltage every the word line based on the voltage shift value memorized in the initial programming voltage parameter memory section; and the trimming parameter setting section sets a trimming parameter trimming the initial program voltage every the word line corresponding to the trimming command which is output from the increment command output section.
 9. The nonvolatile semiconductor memory in claim 7, wherein: the initial programming voltage parameter memory section stores a minimum value of the voltage shift value; and the trimming parameter setting section, at first trimming the initial program voltage every the word line, adds the minimum value to the initial program voltage and sets the trimming parameter, based on the minimum value of the voltage shift memorized in the trimming parameter memory section.
 10. The nonvolatile semiconductor memory in claim 7, wherein: the trimming circuit comprising; a trimming count accumulation section which is accumulated a trimming count of the voltage shift value by the trimming command which is output from the increment command output section; an equation section which is accumulated the trimming count by the increment count accumulation section is averaged out; an adder which is added a value averaged out by the equation section to the voltage shift value; and the trimming parameter setting section sets a trimming parameter trimming the initial program voltage every the word line based on the voltage shift value and an addition result added by the adder.
 11. The nonvolatile semiconductor memory in claim 7, wherein: the trimming circuit comprising; a trimming parameter memory section which is stored the voltage shift value as the trimming parameter every the word line; and a trimming parameter transfer section which is the trimming parameter which is set by the trimming parameter setting section, is made transfer into the trimming parameter memory section and made memorize every the word line.
 12. The nonvolatile semiconductor memory in claim 11, wherein: the trimming parameter memory section is comprising every the word line.
 13. The nonvolatile semiconductor memory as claimed in claim 12, wherein: the trimming parameter memory section is set to an address of every the word line; and the trimming parameter transfer section transfers and memorizes the trimming parameter which is set to the trimming parameter memory section corresponding to the address.
 14. The nonvolatile semiconductor memory in claim 7, wherein: the plurality of memory cells of the memory cell array which is controlled of data program per page of an even page and an odd page; the trimming circuit outputs the trimming command, in which the initial program voltage is trimmed every the even page and the odd page of the word line based on the voltage shift value memorized in the initial programming voltage parameter memory section; and the trimming parameter setting section sets the trimming command, in which the initial program voltage is trimmed every the even page and the odd page of the word line corresponding to the trimming command which is output from the increment command.
 15. The nonvolatile semiconductor memory in claim 14, wherein: the trimming parameter memory section is set to an address of every the even page and the odd page of the word line; and the trimming parameter transfer section transfers and memorizes the trimming parameter which is set to the trimming parameter memory section corresponding to the address.
 16. The nonvolatile semiconductor memory in claim 15, wherein: the trimming parameter memory section is set to an address in a register shared in the even page and the odd page of the word line.
 17. The nonvolatile semiconductor memory comprising: a plurality of bit lines and word lines disposed crossing each other; a memory cell array having a plurality of electrically-programmable memory cells disposed in a region where the bit lines and the word lines is crossed; a trimming circuit as well as the same number of that of the word line, which is operated a parameter of initial program voltage every the word line; an initial programming voltage parameter memory section which is stored receiving the parameter of the initial program voltage from the plurality of the trimming circuits; and a controller which is data program for the memory cell array based on a parameter of the initial program voltage stored in the initial programming voltage parameter memory section.
 18. The nonvolatile semiconductor memory in claim 17, comprising: an increment command output section outputs an increment command which gradually increases the initial program voltage every the word line based on the parameter memorized in the initial programming voltage parameter memory section; and the trimming circuit, respectively having; a trimming parameter setting section which is sets the trimming parameter which trimming the initial program voltage corresponding to the increment command which is output from the increment command output section.
 19. The nonvolatile semiconductor memory in claim 17, wherein: the trimming circuit, respectively having; an increment count accumulation section which is accumulated the increment count of the initial program voltage by an increment command which is output from the increment command output section; an equation section which is averaged the increment count accumulating by the increment count accumulation section; and an adder which is added a value averaged by the equation section to the initial program voltage; and the trimming parameter setting section sets the trimming parameter trimming the initial program voltage every the word line based on the parameter of initial program voltage and an adding result added by the adder.
 20. The nonvolatile semiconductor memory in claim 17, wherein: the trimming parameter setting section stored the trimming parameter. 